Boîte de dialogue : Paramètres du projet: Lumière d'analyse statique
Symbole:
Une fonction: La boîte de dialogue active les vérifications qui sont effectuées avec la version allégée de CODESYS Analyse statique à chaque fois que le code est généré.
Appeler: commander, Lumière d'analyse statique Catégorie
Astuce
Vous pouvez exclure des lignes de code de l'analyse de code statique en marquant le code avec le {analysis ...}
le pragma ou le {attribute 'analysis' := '...'}
pragmatique.
Pour plus d'informations, consultez : Analyser le code de manière statique
Vérifications de compilation supplémentaires
SA0033 : variables inutilisées | Détecte les variables qui sont déclarées mais non utilisées dans le code du programme compilé Pour les variables GVL : si plusieurs applications existent dans un projet, seuls les objets situés sous l'application actuellement active sont affectés. S'il n'y a qu'une seule application, les objets du |
SA0028 : chevauchement des zones de mémoire | Détecte les lignes de code où deux ou plusieurs variables réservent la même mémoire Cela se produit par exemple pour les déclarations suivantes : |
SA0006 : Accès en écriture à partir de plusieurs tâches | Détecte les variables qui sont écrites par plus d'une tâche |
SA0004 : accès en écriture multiple sur la sortie | Détecte les sorties écrites à plusieurs emplacements Remarque : Aucune erreur n'est émise lorsqu'une variable de sortie ( Remarque : Un pragma ne peut pas désactiver cette règle. |
SA0027 : Utilisations multiples des identifiants | Détecte les utilisations multiples d'un nom/identifiant pour une variable ou un objet (POU) dans le cadre d'un projet . Les cas suivants sont détectés :
|
SA0167 : Signaler des instances de FunctionBlock temporaires | Le contrôle détecte les instances de bloc fonction qui sont déclarées comme variables temporaires. Cela affecte les instances qui sont déclarées dans une méthode ou une fonction ou comme |
SA0175 : Opération suspecte sur la chaîne | Inactif par défaut Détecte les emplacements de code suspects pour l'encodage UTF-8 Les constructions suivantes sont incluses :
Selon le résultat du contrôle, il est conseillé de ne pas activer le Encodage UTF8 pour STRING option de compilation. Pour plus d'informations, consultez : Options de compilation |
SA0003 : Déclarations vides
; (* Comment *); iVar;
SA0006 : Accès simultané
FUNCTION_BLOCK ADD_FB g_iTemp1 := g_iTemp1 + INT#1;
PROGRAM PLC_PRG //controlled by MainTask g_iTemp1 := g_iTemp1 + INT#2; g_xTemp2 := g_iTemp1 > INT#10;
PROGRAM PLC_PRG_1 //controlled by SubTask g_iTemp1 := g_iTemp1 - INT#3; g_xTemp2 := g_iTemp1 < INT#-10;
SA0004 : accès en écriture multiple sur la sortie
VAR_GLOBAL g_xVar AT %QX0.0 : BOOL ; g_iTest AT %QW0 : INT ; END_VAR
PROGRAM PLC_PRG IF iCondition < INT#0 THEN g_xVar := TRUE; g_iTest := INT#12; END_IF
CASE iCondition OF INT#1: g_xVar := FALSE; INT#2: g_iTest := INT#11; ELSE g_xVar := TRUE; g_iTest := INT#9; END_CASE
SA0006 : Accès en écriture à partir de plusieurs tâches
FUNCTION_BLOCK ADD_FB g_iTemp1 := g_iTemp1 + INT#1;
PROGRAM PLC_PRG // Controlled by MainTask g_iTemp1 := g_iTemp1 + INT#2; g_xTemp2 := g_iTemp1 > INT#10;
PROGRAM PLC_PRG_1 //Controlled by SubTask g_iTemp1 := g_iTemp1 - INT#3; g_xTemp2 := g_iTemp1 < INT#-10;
SA0027 : Utilisation multiple du nom
PROGRAM PLC_PRG VAR ton : INT; // error SA0027 END_VAR
SA0029 : Notation en code différente de la déclaration
UNE PLC_PRG
POU et un fnc
(fonction) POU existe dans l'arborescence des appareils.
PROGRAM PLC_PRG VAR iVar:INT; _123test_var_: INT; END_VAR
ivar := iVar + 1; // notation different to that in the declaration part -> SA0029 _123TEST_var_ := _123test_var_INT; // notation different to that in the declaration part -> SA0029 Fnc(); // notation different to that in the devices tree -> SA0029
SA0167 : Signaler des instances de FunctionBlock temporaires
PROGRAM PLC_PRG VAR END_VAR VAR_TEMP yafb: AFB; END_VAR
FUNCTION Fun : INT VAR_INPUT END_VAR VAR funafb: AFB; END_VAR
METHOD METH: INT VAR_INPUT END_VAR VAR methafb: AFB; END_VAR
Pour plus d'informations, consultez : Analyser le code de manière statique